package com.rc.saas.payment.alipay.vo;

/**
 * 商户的请求参数中，所有的key（支付宝关键key或者商户自己的key），其对应的value中都不应该出现支付宝关键key，否则该类交易将可能被支付宝拦截禁止支付
 * 商户支付请求参数的安全注意点：
 * a）请求参数的sign字段请务必在服务端完成签名生成（不要在客户端本地签名）；
 * b）支付请求中的订单金额total_amount，请务必依赖服务端，不要轻信客户端上行的数据（客户端本地上行数据在用户手机环境中无法确保一定安全）。
 * Created by sven on 2017/7/9.
 */
public class AlipaySignVo {
    /**
     * 公共参数
     **/
    private String app_id;
    private String method;//接口名称: alipay.trade.app.pay
    private String format;//仅支持JSON:JSON
    private String charset;//请求使用的编码格式，如utf-8,gbk,gb2312等
    private String sign_type;//商户生成签名字符串所使用的签名算法类型，目前支持RSA2和RSA，推荐使用RSA2
    private String sign;

    private String timestamp;//发送请求的时间，格式"yyyy-MM-dd HH:mm:ss"

    private String version;//调用的接口版本，固定为：1.0

    private String notify_url;//支付宝服务器主动通知商户服务器里指定的页面http/https路径。建议商户使用https

    //业务请求参数的集合，最大长度不限，除公共参数外所有请求参数都必须放在这个参数中传递，具体参照各产品快速接入文档
    private String biz_content;

    /**
     * 业务参数
     **/
    private String body;//对一笔交易的具体描述信息。如果是多种商品，请将商品描述字符串累加传给body。
    private String subject;//商品的标题/交易标题/订单标题/订单关键字等。

    private String out_trade_no;//商户网站唯一订单号

    private String total_amount;//订单总金额，单位为元，精确到小数点后两位，取值范围[0.01,100000000]

    private String product_code;//销售产品码，商家和支付宝签约的产品码，为固定值QUICK_MSECURITY_PAY

    private String goods_type;//商品主类型：0—虚拟类商品，1—实物类商品

    public String getApp_id() {
        return app_id;
    }

    public void setApp_id(String app_id) {
        this.app_id = app_id;
    }

    public String getMethod() {
        return method;
    }

    public void setMethod(String method) {
        this.method = method;
    }

    public String getFormat() {
        return format;
    }

    public void setFormat(String format) {
        this.format = format;
    }

    public String getCharset() {
        return charset;
    }

    public void setCharset(String charset) {
        this.charset = charset;
    }

    public String getSign_type() {
        return sign_type;
    }

    public void setSign_type(String sign_type) {
        this.sign_type = sign_type;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(String timestamp) {
        this.timestamp = timestamp;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getNotify_url() {
        return notify_url;
    }

    public void setNotify_url(String notify_url) {
        this.notify_url = notify_url;
    }

    public String getBiz_content() {
        return biz_content;
    }

    public void setBiz_content(String biz_content) {
        this.biz_content = biz_content;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getOut_trade_no() {
        return out_trade_no;
    }

    public void setOut_trade_no(String out_trade_no) {
        this.out_trade_no = out_trade_no;
    }

    public String getTotal_amount() {
        return total_amount;
    }

    public void setTotal_amount(String total_amount) {
        this.total_amount = total_amount;
    }

    public String getProduct_code() {
        return product_code;
    }

    public void setProduct_code(String product_code) {
        this.product_code = product_code;
    }

    public String getGoods_type() {
        return goods_type;
    }

    public void setGoods_type(String goods_type) {
        this.goods_type = goods_type;
    }
}
